This invention relates generally to computer memory, and more specifically to programming techniques for writing to computer memory.
Memory technologies, such as flash memory and phase change memory (PCM), can have relatively long programming times relative to their respective read times. Flash memory may modulate a charge stored within a gate of a metal-oxide-semiconductor (MOS) transistor to shift the transistor's threshold voltage higher or lower per memory cell. PCM may use the different electrical characteristics of crystalline and amorphous states of chalcogenide material to store different data states per memory cell. Storing multiple bits per memory cell can present additional challenges to ensure accuracy of the stored data. For example, the application of a programming signal two times to the same PCM cell or to two different PCM cells does not necessarily lead to the same resistance values in the two cases. As a further example, PCM cell resistance values can change after programming, usually increasing with time. The meaning of a read resistance value therefore may change with time.
Using a basic write-and-verify approach to memory programming which includes a sequence of write and read operations as a feedback mechanism can reduce errors in the writing process. One drawback of write-and-verify techniques is that the iterative process consumes additional resources in the memory. For instance, the write bandwidth gets reduced in a manner proportional to the number of attempts it takes to store a value in the memory, with a greater number of iterations leading to reduced system performance.